package com.per.mybootall.model.infoClass;

import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

/**
 * Created with IntelliJ IDEA.
 *
 * @author: yyy
 * Date: 2021/9/30
 * Time: 11:39
 * Description:字符串自定义排序
 */
@Slf4j
@Component
@EnableScheduling
public class TestMyselfSortingJob {


    @Scheduled(cron = "0/60 * * * * ?")
    public void testJob(){
        System.out.println("测试自定义字符串排序++++++》》");
        List<String> list=new ArrayList<>();
        list.add("香蕉");list.add("石榴");list.add("橘子");list.add("苹果");
        list.add("石榴");list.add("苹果");list.add("香蕉");list.add("苹果");
        System.out.println("即将进行自定义排序的数组为  ：  "+list.toString());
        // 倒序  Collections.sort(list)
        Collections.sort(list, new Comparator<String>() {
            @Override
            public int compare(String o1, String o2) {
                //这是要按照字符串来进行的排序规则【倒序排列的，所以这个排序规则是：石榴，橘子，苹果，香蕉】
                String[] modelList={"香蕉","苹果","橘子","石榴"};
                int msg1 = 0;
                int msg2=0;

                for(int i=0;i<modelList.length;i++){
                    if(modelList[i].equals(o1)){
                        msg1=i;
                    }
                    if(modelList[i].equals(o2)){
                        msg2=i;
                    }
                }
                //比较时，大于0表示前一个数据比后一个数据大， 0表示相等，小于0表示第一个数据小于第二个数据.
                if(msg1<msg2){
                    return 1;
                }else if(msg1==msg2){
                    return 0;
                }else{
                    return -1;
                }

            }
        });
        System.out.println("自定义字符串排序之后的结果为 ： "+list.toString());
    }
}
